1. Field of the Invention
The present invention relates generally to systems and methods for client-server communication, and more particularly to client-assisted motion estimation for client-server video communication.
2. Discussion of Background Art
A typical network involves a software application running on a client computer which retrieves information and accesses resources managed by a server computer. Resources available at the client and server vary depending upon the network and its functionality. For example, the client may be a laptop, handheld PC (e.g. WinCE(copyright) machine) or some other type of computer, and may have either full-power versions of software applications or lighter versions (e.g. a pocket-browser).
Standard protocols involve client requests for data from the server, which the server then retrieves and/or generates, and which the client then processes and displays. Sometimes the server may perform some pre-processing which assists the client, such as streamlining web pages, while the client performs final-processing and rendering of the data, (e.g. the client takes streamlined HTTP data and creates a web page).
While processing and bandwidth requirements vary, high-bandwidth information transfers over computer networks are becoming more and more common, especially with the growth of e-commerce. For example, computers are more and more being used for browsing through web pages, panning through JPEG images, controlling multi-media MPEG movie players, playing video games, and/or remotely operating various software applications, such as Word, Excel, PowerPoint, etc. In many instances, many frames of video information are transmitted to client computers in response to client requests.
FIG. 1 is a dataflow diagram of a conventional video compression system 100. Within the system 100, a client 102, displaying a current frame, sends a request for a new frame over line 104 to a server 106. A retrieve material module 108 within the server 106 retrieves the new frame and sends the new frame contained within the current frame (a.k.a. xe2x80x9cP-Blocksxe2x80x9d) to a motion estimation (ME) module 110 to determine if blocks in the new frame may be accurately predicted using blocks from the current frame. Blocks in the new frame which can not be accurately predicted are coded as intra-frame (a.k.a. xe2x80x9cI-blocksxe2x80x9d) without prediction.
The ME module 110 generates one or more motion vectors (MVs) for predicting motion of blocks in the new frame with reference to previous positions of the blocks in the current frame. The ME module 110 conventionally computes these MV""s using a brute force method which compares each block in the new frame with a corresponding block in the current frame. A prediction error (PE) is then computed from each MV. The ME module 110 contains, by far, the most complex and computationally intensive algorithms used in the system 100, and thus consumes a substantial amount of the server""s 106 computational time.
The encode module 112 within the server 106 receives the MVs and PEs from the ME module 110. The encode module 112 determines whether each block should be coded as a P or I block before coding the blocks into a compressed bit-stream. The compressed bit-stream is then transmitted to the client 102 on line 114. A decoder 116 within the client 102 conventionally decodes the bit-stream into the new frame to be displayed by the client computer 102.
Due to the dramatically growing popularity of modem networks, where a relatively small number of servers service a much greater number of clients, and the growth in multimedia transmitted over such networks, there has been a significant increase in demand for greater server processing power and greater bandwidth. This demand is driving up both the cost and complexity of servers and networks at an unparalleled rate. What is needed is a system and method for client-server communication that reduces these costs and overcomes these problems in the prior art.
The present invention is a system and method for client-assisted motion estimation for client-server communication. The system and method of the present invention includes the steps of receiving a request to update a current set of pixels within a video display on a client computer, and generating a motion vector for moving the current set of pixels within the video display using video information obtained only from the request and the client computer. In addition to sets of pixels, the present invention operates as well on objects, blocks and frames of video information.
The receiving step may also include the step of receiving a motion request to translate subsets of the current set of pixels by predetermined amounts, and the generating step may also include the step of generating a corresponding set of motion vector for moving the subsets within the video display by the predetermined amounts.
The receiving step may also include the step of receiving a motion request to keep static a second subset of the current set of pixels, and the generating step may also include the step of instructing the client computer to leave the second subset undisturbed within the video display.
The present invention may further include the steps of, identifying gaps in the video display after moving the subsets by the predetermined amounts, and retrieving new video information from a server computer containing new video pixels corresponding to the gaps in the video display, after which the gaps in the video display with the new video pixels.
The present invention provides for inactivating resources for computing motion estimation using non-client video information obtained from other than the request and the client computer. The present invention provides for performing quality evaluation on the motion vectors created from the request and client video information.
When implemented in a client-server network, the present invention permits an exchange of side information between the client and server so that responsibility for executing the receiving and generating steps of the present invention may be delegated between the client and server as resources permit.
The system and method of the present invention are particularly advantageous over the prior art because new material requested by a client computer over a network from a server is often related to old material already at the client, and the present invention enables the server to use the client request itself to direct various compression, decompression, and communication operations.
Thus present invention uses these client requests to selectively retrieve and generate motion vectors at the server which take advantage of visual information already on the video display. Updates to client video displays can thus be transmitted over the network using significantly less bandwidth than current prior art communications systems.
Also, since motion vector calculations using conventional methods can make up to 90% of server computations, the present invention, by estimating the motion vectors from client requests, essentially bypasses conventional complex motion vector calculations.
These and other aspects of the invention will be recognized by those skilled in the art upon review of the detailed description, drawings, and claims set forth below.